package com.zf.nospring.rocketmq.oneway;

import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.exception.RemotingException;

/**
 * 单向消息
 */
public class OnewayProducerTest {
    /**
     * 单向发送：只负责发送消息而不等待服务器回应且没有回调函数，适用于某些耗时非常短但对可靠性要求并不高的场景，例如日志收集。
     */
    public static void main(String[] args) throws MQClientException, RemotingException, InterruptedException {
        // 创建生产者，指定生产者所属的组
        DefaultMQProducer producer = new DefaultMQProducer("no-spring-pg");
        // 指定NameServer的地址
        producer.setNamesrvAddr("localhost:9876");
        // 启动生产者
        producer.start();

        for (int i = 1; i <= 10; i++) {
            // 创建消息对象：指定主题、标签、消息体
            Message message = new Message("test_topic", "myTag", ("单项测试消息" + i).getBytes());
            // 发送单向消息
            producer.sendOneway(message);
        }

        // 关闭生产者
        producer.shutdown();
    }
}
